Jim and Jan
Searched newsletter land
For an article they were after.
Jan wrote code
That was ill bode
And Jim suppressed his laughter.
The online index of the newsletters is managed and updated by Bill Jennings. It would be impossible to search the newsletters without this index and Bill deserves our heartfelt thanks. Many people, though, download the newsletters and search them offline without benefit of this index. If you're like me, you're constantly saying, "I know I read that in the newsletters, but which one?" I suggested an offline searchable database. This challenge was issued by Alyce:
[http://libertybasic.conforums.com/index.cgi?action=display&board=software&num=1078888463&start=17]
The gauntlet, having been thrown, was picked up. Thus began the idea of The Liberty BASIC Newsletter Index. Ideas do not always come to fruition. The gauntlet, having been picked up, came close to being discarded several times in the recycle bin but for the intervention of Jim Brossman. Simply stated, this program would not have been completed and this article would not have been written were it not for the mentoring and tutorship of random access files given to me by Jim. I'd like to take this opportunity to publicly thank Jim for all his shared wisdom and extensive debugging help.

The Liberty BASIC Newsletter Index is a random access file containing information from newsletters #1 - #120. This information includes Title, Author (if stated), and Issue Number. There are 14 pre-defined checklist categories that also help with searching. In addition, a searchable comments and remarks category is available for specific, personalized information.
The Liberty BASIC Newsletter Index is NOT a collection of the actual newsletters. There is a VIEW option within the program to load the particular issue if the user has already downloaded that issue. The user will need to first modify the program to include the appropriate directory. The line to be modified is the second line of actual code in the program:
NLDirectory$="C:\NEWSLETTERS\NL"
It was Jim who suggested the titles and authors could be retrieved from Bill Jenning's index. In Jim's words:
"Rather than attempt to type over 600 article titles and their authors, it was decided to create the article database using the latest nlcontents.txt file and a short program to read it. In order to minimize the amount of coding required, the nlcontents.txt file was manually edited in a few places to make reading the file more consistent. The file was read as a sequential file using the line input command."The first thing that had to be done was to remove the tab characters by looking for asc 9, and also ignoring blank lines that are in the file. Then each line was interrogated to see if it started with "NL". This was how the newsletter issue number was retrieved for the articles that followed. The rest of the line was an article title and if the line didn't start with "NL", the line was also an article. Next the line was searched for ", by". If that was found, the author's name followed and was retrieved. The authors name was then checked against an array containing the names and author number to see if the name already existed. If it did, the existing author number was used and if it didn't, the new author was added to the end of the file and a new author number created. Finally the article title was saved to an array along with the issue number, the author number, the categories were all set to Information and the comment field was left blank. Both the article and author arrays were sorted alphabetically and saved to random access files called articleID.dat and authorID.dat. The categories and comments were edited later using the Newsletter Index program. The program used to convert the file is available from the author." (Jim Brossman, May, 2004)

The Liberty BASIC Newsletters are not all in the same format. Fortunately, blocks of issues are uniform. All issues prior to 106 are in .txt format (with the exception of issue 104 which is in .rtf format). Issues 106 to present are in html format. The [viewArticle] code (written by Jim) loads the issue IF the issue has been saved to a folder clearly identified by NL1, NL2, NL3, ... NL119, NL120. The code will return a "The Newsletter for this article was not found" if this condition is not met.
If you find this program useful, feel free to edit and modify to your personal taste. Jim entered the information for issues 1 - 92 and I entered the information for issues 93 - 120. Neither of us will feel slighted if you feel changing the category "Full Program" to "Programming Languages" would better suit your needs. Neither will we be offended if you delete all the comments and remarks and replace with your own. In fact, we'd be delighted. It was important to have a fully working searchable index to present to the community, but it was also important that this index be fully capable of user personalization. We'll leave the rigid Dewey decimal system to the 'real' librarians.
There are 601 articles and entered in the articleID database. That's excluding conversational articles such as contest updates and welcome messages. (Sorry, editors, but you'll have to go online to find references to Syntax Error articles.) There are 65 known authors recorded in the authorID database. These numbers bear repeating. 601 articles written by, at last count, 65 Liberty BASIC community members all for the love and joy of sharing Liberty BASIC programming skills. And, this issue, NL121, isn't even counted yet!
All searching is done by AND. There is no option for AND NOT. For example:
Checking a category means that the desired article MUST have that category checked. Unchecked categories do not affect the retrieval selection. Checking the category database will retrieve articles which have the database category checked. Checking both database and API/DLL categories will retrieve those articles which have both these categories checked. If you choose CHECK ALL CATEGORIES, you will probably retrieve 0 articles, as it's unlikely there is even one article which has each and every category checked. Likewise, if you CLEAR ALL CATEGORIES, then you will retrieve all records, as the retrieve function is then not limited by even one checked category. Categories can be combined with Select Issue, Select Author and Select Keyword.
The Liberty BASIC Newsletter Index was tested in Liberty BASIC version 3.03, 4, and 4.01.
These files can be unzipped from NLIndex.zip